子字符串(Substring)是什么以及如何获取?

子字符串(Substring)是从一个字符串(String)中提取的一部分字符。在 SPSS 中提取子字符串可以使用 CHAR.SUBSTR (SPSS 16 及更高版本) 或 SUBSTR (SPSS 15 及更低版本) 函数。string CHAR.SUBSTR 接受两个或三个参数,如下面的最小示例所示。

SPSS CHAR.SUBSTR - 最小示例

COMPUTE var_2 = CHAR.SUBSTR(var_1,3,2).

这三个参数的含义如下:

  • var_1:表示从中提取子字符串的变量。
  • 3:表示要提取的第一个字符的位置。
  • 2:表示要提取的字符数。

总而言之,这个例子意味着 var_2 将由 var_1 的第 3 个和第 4 个字符组成。

SPSS 子字符串语法示例

以下示例使用 webdesigners.sav 数据集。

cd 'C:\xampp\htdocs\spss-tutorials\wp-content\themes\spss-tutorials-10\dont_upload\@external files\SPSS\test_data_creation\webdesigners'.

get file 'webdesigners.sav'.

string fname lname company tld (a30).

compute fname = char.substr(email,1,1).
execute.

compute fname = char.substr(email,3,2).
execute.

compute fname = char.substr(email,1,char.index(email,'.') - 1).
execute.

compute fname = concat(upper(char.substr(fname,1,1)),char.substr(fname,2)).
execute.

compute lname = char.substr(email,char.index(email,'.') + 1,char.index(email,'@') - 1 - char.index(email,'.')).
execute.

compute lname = concat(upper(char.substr(lname,1,1)),char.substr(lname,2)).
execute.

compute company = char.substr(email,char.index(email,'@') + 1).
execute.

compute tld = char.substr(company,char.rindex(company,'.') + 1).
execute.

document 'bal'.

document 'bol'.

display documents.

解释

  • 在 SPSS 中,可以使用 CHAR.SUBSTR(a,b,c) 提取子字符串。
  • 这里,a 指的是要从中提取子字符串的字符串。
  • 第二个参数 b 指示起始位置(“从第 b 个字母开始”)。
  • 第三个参数 c 是子字符串的长度。它可以省略,在这种情况下,将提取起始位置之后的所有字符。
  • 如第二个示例所示,ab 不必是静态数字。它们可以替换为(例如)字符串中最后一个空格的位置,该位置由 RINDEX 返回。
  • 通常可以省略 CHAR 前缀。具体何时可以省略将在 Unicode 模式中进行解释。
  • 在许多情况下,仅使用 SUBSTRING 就可以修改原始字符串。这始终适用于由单字节字符组成的字符串。同样,请参阅 Unicode 模式。这在最后一个例子中有所展示。

Python 子字符串示例

begin program.
pets = 'Cat Dog Rat'
print pets[4:7]
print pets[pets.rfind(" ") +1:]
end program.

解释

  • Python 中,可以使用方括号 **[]** 从字符串中提取子字符串。后者包含要提取的字符的相关索引。
  • 此操作称为切片(Slicing)。(切片不仅用于子字符串函数。例如,mylist[1] 将从名为“mylist”的列表中返回第二个元素。)
  • 字符范围由冒号 : 指定。
  • 例如,[1:4] 返回第二个到第四个元素。这是因为它使用给定的起始索引和(结束索引 - 1)。
  • 类似地,如果省略起始索引(如 [:4] 中),它将返回第一个到第四个元素。
  • 最后,如果省略结束索引([1:]),则返回第二个到最后一个元素。